From 6b868489843515e85b32b7058f1249abdd374711 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 27 Sep 2021 16:38:32 -0400 Subject: [PATCH] builder: Don't leak refs We sometimes end up setting an object on a GValue that we are then not interested in. We need to unset it, or we'll leak the ref. --- gtk/gtkbuilder.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/gtk/gtkbuilder.c b/gtk/gtkbuilder.c index 809f55ff63..6f13bde4c7 100644 --- a/gtk/gtkbuilder.c +++ b/gtk/gtkbuilder.c @@ -606,16 +606,12 @@ gtk_builder_get_parameters (GtkBuilder *builder, continue; } - if (prop->pspec->flags & filter_flags) - { - if (filtered_parameters) - object_properties_add (filtered_parameters, property_name, &property_value); - } + if ((prop->pspec->flags & filter_flags) != 0 && filtered_parameters) + object_properties_add (filtered_parameters, property_name, &property_value); + else if ((prop->pspec->flags & filter_flags) == 0 && parameters) + object_properties_add (parameters, property_name, &property_value); else - { - if (parameters) - object_properties_add (parameters, property_name, &property_value); - } + g_value_unset (&property_value); } } -- 2.30.2